home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / Beyaz Perde (TR).ifs < prev    next >
Text File  |  2005-03-13  |  8KB  |  286 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=Tiu Fang
  8. Title=beyazperde.com
  9. Description=Imports movies from beyazperde.com with picture
  10. Site=http://www.beyazperde.com
  11. Language=TR
  12. Version=
  13. Requires=3.5.0
  14. Comments= by Tiu Fang to work with (only) beyazperde.com tiufang@hotmail.com Based on the IMDB scrit (but does not use IMDB website at all)
  15. License=This program is free software; you can redistribute it and/or modify it under the  terms of the GNU General Public License as published by the Free Software Foundation;  either version 2 of the License, or (at your option) any later version. |
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22. program BeyazPerdePic;
  23. var
  24.   MovieName: string;
  25.  
  26. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  27. var
  28.   i: Integer;
  29. begin
  30.   result := -1;
  31.   if StartAt < 0 then
  32.     StartAt := 0;
  33.   for i := StartAt to List.Count-1 do
  34.     if Pos(Pattern, List.GetString(i)) <> 0 then
  35.     begin
  36.       result := i;
  37.       Break;
  38.     end;
  39. end;
  40.  
  41. procedure AnalyzePage(Address: string);
  42. var
  43.   Page: TStringList;
  44.   LineNr: Integer;
  45. begin
  46.   Page := TStringList.Create;
  47.   Page.Text := GetPage(Address);
  48.   if pos('Arama</title>', Page.Text) = 0 then
  49.   begin
  50.     SetField(fieldURL, Address);
  51.     AnalyzeMoviePage(Page)
  52.   end else
  53.   begin
  54.     PickTreeClear;
  55.     LineNr := 0;
  56.     LineNr := FindLine('<td class="metin3">Filmler</td>', Page, LineNr);
  57.     if LineNr > -1 then
  58.     begin
  59.       PickTreeAdd('Filmler', '');
  60.       AddMoviesTitles(Page, LineNr);
  61.     end;
  62.  
  63.     if PickTreeExec(Address) then
  64.       AnalyzePage(Address);
  65.   end;
  66.   Page.Free;
  67. end;
  68.  
  69. procedure AnalyzeMoviePage(Page: TStringList);
  70. var
  71.   Line, Value, Value2, FullValue: string;
  72.   LineNr: Integer;
  73.   BeginPos, EndPos: Integer;
  74. begin
  75.  
  76.   // Original Title & Year
  77.   LineNr := FindLine('<title>Beyazperde.com - ', Page, 0);
  78.   Line := Page.GetString(LineNr);
  79.   if LineNr > -1 then
  80.   begin
  81.     BeginPos := pos('<title>Beyazperde.com - ', Line);
  82.     if BeginPos > 0 then
  83.       BeginPos := BeginPos + 24;
  84.     EndPos := pos(' / ', Line);
  85.     if EndPos = 0 then
  86.     begin
  87.       EndPos := pos(' (', Line);
  88.       Value := copy(Line, BeginPos, EndPos - BeginPos);
  89.       SetField(fieldTranslatedTitle, Value);
  90.       SetField(fieldOriginalTitle, Value);
  91.     end else
  92.     begin
  93.       BeginPos := pos(' / ', Line) + 3;
  94.       if BeginPos > 0 then
  95.       begin
  96.         EndPos := pos(' (', Line);
  97.         Value := copy(Line, BeginPos, EndPos - BeginPos);
  98.         SetField(fieldOriginalTitle, Value);
  99.       end;
  100.     end;
  101.  
  102.     BeginPos := pos('(', Line) + 1;
  103.     if BeginPos > 0 then
  104.     begin
  105.       EndPos := pos(')', Line);
  106.       Value := copy(Line, BeginPos, EndPos - BeginPos);
  107.       SetField(fieldYear, Value);
  108.     end;
  109.   end;
  110.  
  111.   // Rating
  112.   LineNr := FindLine('<span class="metin2"><b>SinePuan', Page, 0);
  113.   if LineNr > -1 then
  114.   begin
  115.     Line := Page.GetString(LineNr);
  116.     if Pos('</b>', Line) > 0 then
  117.     begin
  118.       EndPos := pos('</b>', Line);
  119.       BeginPos := pos('tin2>', Line) + 5;
  120.       Value := copy(Line, BeginPos, EndPos - BeginPos);
  121.  
  122.       if pos(',', Value) > 0 then
  123.       begin
  124.         Value := IntToStr(Round(StrToInt(StrGet(Line, BeginPos), 0) + (StrToInt(StrGet(Line, BeginPos + 2), 0) / 10)));
  125.       end;
  126.       SetField(fieldRating, Value);
  127.     end;
  128.   end;
  129.  
  130.   // Picture
  131.   LineNr := FindLine('images/film/', Page, 0);
  132.   
  133.   if LineNr > -1 then
  134.   begin
  135.     Line := Page.GetString(LineNr);
  136.     BeginPos := pos('src="', Line) + 5;
  137.     EndPos := pos('">', Line);
  138.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  139.     GetPicture(Value);
  140.   end;
  141.  
  142.   // Director
  143.   LineNr := FindLine('<!-- YONETMEN -->', Page, 0);
  144.   if LineNr > -1 then
  145.   begin
  146.     FullValue := '';
  147.     Line := Page.GetString(LineNr + 4);
  148.  
  149.     BeginPos := pos('item>', Line) + 5;
  150.     EndPos := pos('</a>', Line);
  151.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  152.     HTMLDecode(Value);
  153.     SetField(fieldDirector, Value);
  154.   end;
  155.  
  156.   // Actors
  157.   FullValue := '';
  158.   LineNr := FindLine('<!-- OYUNCULAR -->', Page, 0);
  159.   
  160.   if LineNr > -1 then
  161.   begin
  162.     repeat
  163.       LineNr := LineNr + 1;
  164.       Line := Page.GetString(LineNr);
  165.  
  166.       if pos('href="/kisi/', Line) > 0 then
  167.       begin
  168.         BeginPos := pos('class=item>', Line) + 11;
  169.         EndPos := pos('</a>', Line);
  170.         Value := copy(Line, BeginPos, EndPos - BeginPos);
  171.         BeginPos := pos('(', Line);
  172.         EndPos := pos(')', Line) + 1;
  173.         Value := Value + ' ' + copy(Line, BeginPos, EndPos - BeginPos) + ', ';
  174.         FullValue := FullValue + Value;
  175.       end;
  176.     until pos('</table>', Line) > 0;
  177.     EndPos := Length(FullValue);
  178.     Delete(FullValue, EndPos - 1, EndPos);
  179.     HTMLDecode(FullValue);
  180.     SetField(fieldActors, FullValue);
  181.   end;
  182.  
  183.   //Country
  184.   LineNr := FindLine('<!-- ULKE -->', Page, 0);
  185.   if LineNr > -1 then
  186.   begin
  187.     Line := Page.GetString(LineNr + 2);
  188.     BeginPos := pos('em>', Line) + 3;
  189.     EndPos := pos('</a>', Line);
  190.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  191.     HTMLDecode(Value);
  192.     SetField(fieldCountry, Value);
  193.   end;
  194.  
  195.   //Category
  196.   LineNr := FindLine('arama.asp?kat=tur', Page, 0);
  197.   if LineNr > -1 then
  198.   begin
  199.     Line := Page.GetString(LineNr);
  200.     BeginPos := pos('em>', Line) + 3;
  201.     EndPos := pos('</a>', Line);
  202.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  203.     HTMLDecode(Value);
  204.     SetField(fieldCategory, Value);
  205.   end;
  206.  
  207.   // Length
  208.   LineNr := FindLine('<!-- SURESI -->', Page, 0);
  209.   if LineNr > -1 then
  210.   begin
  211.     Line := Page.GetString(LineNr + 2);
  212.     BeginPos := pos(', ', Line) + 2;
  213.     EndPos := pos(' dk', Line);
  214.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  215.     SetField(fieldLength, Value);
  216.   end;
  217.  
  218.  
  219.   //Description
  220.   LineNr := FindLine('<td width="431" colspan="4" bgcolor="#FFFFFF" class=metin align=left valign="middle">', Page, 0);
  221.   Value := '';
  222.   repeat
  223.     LineNr := LineNr + 1;
  224.     Line := Page.GetString(LineNr);
  225.     if pos('<p><script src="/beyazperde.js"></script>', Line) < 1 then
  226.     begin
  227.       Value := Value + Line;
  228.     end;
  229.   until pos('<p><script src="/beyazperde.js"></script>', Line) > 0;
  230.  
  231.   Value := StringReplace(Value, '<br>', #13#10);
  232.   Value := StringReplace(Value, '<p>', '');
  233.   Value := StringReplace(Value, #13#10+' ', #13#10);
  234.  
  235.   SetField(fieldDescription, Value);
  236.  
  237.   //DisplayResults;
  238. end;
  239.  
  240. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
  241. var
  242.   Line: string;
  243.   MovieTitle, MovieAddress: string;
  244.   StartPos: Integer;
  245.   TempPos: Integer;
  246. begin
  247.   repeat
  248.     LineNr := LineNr + 1;
  249.     Line := Page.GetString(LineNr);
  250.     TempPos := pos('<img src="', Line);
  251.  
  252.     if TempPos < 1 then
  253.     begin
  254.       StartPos := pos('<a href="', Line);
  255.       if StartPos > 0 then
  256.       begin
  257.         Startpos := Startpos + 9;
  258.         MovieAddress := copy(Line, StartPos, pos('" class=metin2>', Line) - StartPos);
  259.         StartPos := pos('<b>', Line) + 3;
  260.         MovieTitle := copy(Line, StartPos, pos('</b>', Line) - StartPos);
  261.         LineNr := LineNr + 1;
  262.         Line := Page.GetString(LineNr);
  263.         StartPos := pos('/ ', Line) + 2;
  264.         MovieTitle := MovieTitle + copy(Line, StartPos, pos ('<br>', Line) - StartPos);
  265.         HTMLDecode(Movietitle);
  266.         PickTreeAdd(MovieTitle, 'http://www.beyazperde.com' + MovieAddress);
  267.       end;
  268.     end;
  269.   until pos('filmden', Line) > 0;
  270. end;
  271.  
  272. begin
  273.   if CheckVersion(3,5,0) then
  274.   begin
  275.     MovieName := GetField(fieldOriginalTitle);
  276.     if MovieName = '' then
  277.       MovieName := GetField(fieldTranslatedTitle);
  278.     if Input('Beyaz Perde', 'Lⁿtfen filmin ismini girin', MovieName) then
  279.     begin
  280.       AnalyzePage('http://www.beyazperde.com/hizliarama.asp?keyword='+UrlEncode(MovieName));
  281.     end;
  282.   end else
  283.   ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
  284. end.
  285.  
  286.